// 定义记分牌类

class ScorePanel {
  // 当前的游戏分数
  score: number = 0
  // 当前的游戏等级
  static level: number = 1
  // 渲染游戏分数的DOM对象
  scoreEle: HTMLElement
  // 渲染游戏等级的DOM对象
  levelEle: HTMLElement
  // 游戏的最大难度等级
  maxLevel: number
  // 提升一个难度等级的分数间隔
  upGrade: number

  constructor(maxLevel: number = 10, upGrade: number = 10) {
    // 初始化分数技术面板和等级技术变量
    this.scoreEle = <HTMLElement>document.querySelector('#score-ele')
    this.levelEle =<HTMLElement>document.querySelector('#level-ele')
    this.maxLevel = maxLevel
    this.upGrade = upGrade
  }

  // 为当前游戏加分
  addScore() {
    this.score++
    this.scoreEle.innerText = 'SCORE:' + this.score
    // 如果分数为upGrade的整数倍  难度就提升一个等级
    if (this.score % this.upGrade === 0) {
      this.addLevel()
    }
  }

  // 提升游戏等级
  addLevel() {
    // 游戏的最高等级有上限  默认最高为10
    if (ScorePanel.level >= this.maxLevel) return
    ScorePanel.level++
    this.levelEle.innerText = 'LEVEL:' + ScorePanel.level
  }
}

export default ScorePanel
